package com.xhu.collegestudentrentalsystem.util;

import com.xhu.collegestudentrentalsystem.module.user.entity.User;
import org.springframework.stereotype.Component;

/**
 * @author zhu huilin
 * @date 2023/3/3 22:12
 *
 *  做存储容器，代替session存储用户信息，方便取用
 */
@Component
public class HostHolder {
    // 存放用户信息，并能隔离每个线程
    private ThreadLocal<User> users=new ThreadLocal<>();

    /*
            ThreadLocal中自带set/get方法，按照线程存取。
                将信息存储在Map中，只要请求没有处理完，线程就一直存在；请求完成，服务器响应后，线程被销毁（执行clear()方法）
     */
    public void setUser(User user){
        users.set(user);
    }

    public User getUser(){
        return users.get();
    }

    public void clear(){
        users.remove();
    }
}
